1. Field of the Invention
The present invention relates to data communication systems, and more particularly to data communication systems which are based on data packet switching.
2. Description of the Prior Art
In the prior art, communication systems were added to computers to allow various remotely located users access to the computer. As computer processing times became faster, the need for allowing more users access to the computer further increased, in order to fully utilize the computer facility. Generally, access to such central computer was made by way of remote consoles, each tying to the central computer. As the number of computer facilities grew, users began to notice their heavier investments in software, and the often occurring duplication of software, and for those reasons communications among users increased to facilitate sharing of programs and data.
As the facility of using computers for problem solutions increased, the solutions themselves became more ambitious, increasingly complex and quickly increased in size to a point where the local computer could not economically handle such. This situation led to an additional use for data communication where various computing devices were combined to provide enhanced virtual computers.
In conjunction with the above developments, parallel advances in semiconductor technology have provided small, inexpensive computers, such as microprocessors, which because of their low cost have acquired a wide acceptance. The owner of such a small computer, however, often does not desire to concurrently assume the cost of various peripheral devices, as for example a high speed printing station, and for that reason such devices are increasingly used on a shared basis. Again, the necessity of communicating between the small computer and the shared facility increased the load on any communicating system. In addition, with the advent of such small computers, and particularly their associated algorithmic simplicity and convenience in use, the old techniques of central computer process supervision are now being abandoned in favor of distributed control.
More specifically, the original large and complex computer facilities were generally provided with a supervisory system for the purpose of scheduling and directing jobs, sampling input and output devices and otherwise controlling the order of operations within a relatively complex computer. Such supervisory systems also accommodated, by way of the loader function and the linking function for example, problem solutions which in their entirety would saturate the computer memory and which, however, by use of this system, could be broken up and handled serially on one central processing facility. Such tasks assigned to the supervisory system, together with the increasing task of tying and correlating various, increasing in number, peripheral stations to the central processor has led to a growth of supervisory systems which are now typically so complex that a large part of the computer down time can be attributed to failures thereof. Accordingly, the recent trend has been towards less centralized control in any one computer facility.
With the advent of the aforementioned small computers, and particularly their ease and simplicity in operation, the user himself can assume more control over the sequence of operations in the processor. Accordingly, a central supervising system is no longer required and the control is therefore shared, or distributed, amongst users.
The residual problem, however, is in the communications themselves between the various computing devices. Where more than one computer is shared in solving a particular problem, or where smaller problems are handled on a time shared basis, the speed of communication and the capacity of the communicating network quickly becomes the dominant aspect of the problem.
Communications between such computing devices are carried out by way of two generic techniques. One such technique is generally referred to as a circuit switching technique, while the second technique is generally referred to as a packet switching technique. Circuit switching techniques can be analogized to telephone network switching, which for short and bursty communications typical in computer applications requires a high overhead in terms of circuit equipment. For a short communication, the time required to establish the connection can be very large relative to the time of actual transmission. For bursty communications, the connection established by circuit switching is unused and wasted during the large fraction of idle time in the data conversation. On the other hand, packet switching can be analogized to letter handling by the postal system, except that the letters are computer data packets sorted and transmitted very quickly by increasingly inexpensive computers. Short communications can be carried efficiently in a single data packet and bursty communications can be handled with a series of packets, none of which occupy communication resources during the frequent idle periods between bursts.
Accordingly, there exists a present requirement for a packet switching communication system which is efficient and reliable while requiring minimum hardware. Additional requirements are to provide a communication system capable of effecting communications between various computers and peripherals without the aid of central control and with a high level of probability of completion. In addition, there is a further requirement to provide a communication network which is simple to produce, requires simple parts in its attachments and is generally of low complexity.